﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыРасчетовПоДоговорам
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"45173512-812b-4d5d-be32-8c7761208fd9\", \"Представление\":\"РасчетыВВалютеРегламентированногоУчета\"}")]
		РасчетыВВалютеРегламентированногоУчета = 0,//Расчеты в валюте регламентированного учета
		[EnumMember(Value = "{\"Ссылка\":\"9099ae90-1f42-4779-b832-e14f388f85e5\", \"Представление\":\"РасчетыВУсловныхЕдиницах\"}")]
		РасчетыВУсловныхЕдиницах = 1,//Расчеты в условных единицах
		[EnumMember(Value = "{\"Ссылка\":\"159ff985-f8e6-4cde-9ea5-679b334c333a\", \"Представление\":\"РасчетыВИностраннойВалюте\"}")]
		РасчетыВИностраннойВалюте = 2,//Расчеты в иностранной валюте
	}
	public static partial class ВидыРасчетовПоДоговорам_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid РасчетыВВалютеРегламентированногоУчета = new Guid("778c32be-2061-d98f-4d5d-812b45173512");//Расчеты в валюте регламентированного учета
		public static readonly Guid РасчетыВУсловныхЕдиницах = new Guid("4fe132b8-8f38-e585-4779-1f429099ae90");//Расчеты в условных единицах
		public static readonly Guid РасчетыВИностраннойВалюте = new Guid("9b67a59e-4c33-3a33-4cde-f8e6159ff985");//Расчеты в иностранной валюте
		public static ВидыРасчетовПоДоговорам Получить(this ВидыРасчетовПоДоговорам Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыРасчетовПоДоговорам Получить(this ВидыРасчетовПоДоговорам Значение, Guid Ссылка)
		{
			if(Ссылка == РасчетыВВалютеРегламентированногоУчета)
			{
				return ВидыРасчетовПоДоговорам.РасчетыВВалютеРегламентированногоУчета;
			}
			else if(Ссылка == РасчетыВУсловныхЕдиницах)
			{
				return ВидыРасчетовПоДоговорам.РасчетыВУсловныхЕдиницах;
			}
			else if(Ссылка == РасчетыВИностраннойВалюте)
			{
				return ВидыРасчетовПоДоговорам.РасчетыВИностраннойВалюте;
			}
			return ВидыРасчетовПоДоговорам.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыРасчетовПоДоговорам Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыРасчетовПоДоговорам Значение)
		{
			switch (Значение)
			{
				case ВидыРасчетовПоДоговорам.РасчетыВВалютеРегламентированногоУчета: return РасчетыВВалютеРегламентированногоУчета;
				case ВидыРасчетовПоДоговорам.РасчетыВУсловныхЕдиницах: return РасчетыВУсловныхЕдиницах;
				case ВидыРасчетовПоДоговорам.РасчетыВИностраннойВалюте: return РасчетыВИностраннойВалюте;
			}
			return Guid.Empty;
		}
	}
}